/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* removeElements(struct ListNode* head, int A) {
        while (head!=NULL&&head->val==A) //寻找链表内是否存在目标元素
        { 
            head = head->next;
        }
        struct ListNode* p=head;
        while (p!=NULL&&p->next!=NULL)
        {
            if (p->next->val==A) //找到目标元素
            {
                p->next=p->next->next;//将目标元素删除
            } 
            else 
            {
                p=p->next;
            }
        }
        return head;
    }
}